/**
 * 升级者
 */

let baser = require("./baser");

// 返回baser的内部生命函数
module.exports = function () {
    return baser(
        /**
         * 准备函数，获取能量
         * @param {Creep} creep
         */
        function (creep) {
            // 满了开始升级
            if (creep.store.getFreeCapacity() < 5) {
                return 2;
            }
            // 继续获取能量
            if (creep.actionWithdraw() == 1) {
                creep.actionHarvest();
            }
            return 1;
        },
        /**
         * 工作函数，升级
         * @param {Creep} creep
         */
        function (creep) {
            // 空了准备能量
            if (creep.store[RESOURCE_ENERGY] < 5) {
                return 1;
            }
            // 继续升级
            creep.actionUpgrade();
            return 2;
        },
        /**
         * 结束函数，闲逛或其它
         * @param {Creep} creep
         */
        function (creep) {
            return 2;
        });
}
